This invention relates to devices that provide automated motion or path control, such as but not limited to those used in computer-controlled machine tools, robots, and the like. Such path-based automatic positioning applications may comprise systems that provide multi-axis computer numerically controlled (CNC) machining systems, laser-marking systems, or electron-beam welding. Although the terminology commonly associated with CNC machining will be used throughout this description, those skilled in the in the automation, robotics, machining, and/or manufacturing arts will understand that the applications of this invention apply beyond the narrow realm of CNC machining. Accordingly, application of the invention is not to be construed as limited to only CNC machining.
A typical computer controlled machine tool includes, among other things: one or more controllers; one or more mechanisms each comprising one or more actuators, one or more sensors (whether discrete devices or embedded in the mechanisms), and a tool holder or tool head; and various data communication subsystems, display, and operator interfaces. Such a typical machine may have multiple, independent axes of controllable motion, depending on the type and number of mechanisms.
The continuing market need for higher productivity in machining and other automation applications has led to the increasing use of various types of advanced, ultra-high bandwidth mechanisms in these applications. These mechanisms, sometimes referred to as “fast” servomechanisms (colloquially, “fast servos”), comprise various sensors, actuators, and associated servo control electronics. In a machining application, these high bandwidth mechanisms may employ laser cutters or electron beams instead of the traditional metal cutting tools. For example, in one type of high bandwidth mechanism, a cutting laser beam is bounced off two mirrors whose angles are servo-controlled by galvanometers. Such high bandwidth mechanisms are known in the art to be faster than standard CNC mechanisms, but have much more limited travel or range of motion.
Fast servomechanisms are distinguished by their ability to move very quickly and very accurately, with the ability to track commanded trajectories with high-frequency content, necessitating a high servo loop bandwidth to compute commanded positions, sense actual positions, and update their servo commands to minimize the difference between commanded and actual positions. Commonly used types of these fast (high bandwidth) mechanisms include galvanometers, voice-coil actuators, piezoelectric actuators, and magnetostrictive actuators. Such “high bandwidth mechanisms” usually have a very limited range of motion. This typically results in their being coupled with standard, comparatively “slow” mechanisms that have a greater range of motion in order to cover the full range of the machine. Such standard mechanisms typically have significantly lower bandwidth, but can cover the full range of travel required.
Deciding which components of motion should be allocated to the high bandwidth mechanisms and which components of motion should be allocated to the standard mechanisms has not been an easy task. A common strategy has been to use the standard mechanism's control axes just to move the high bandwidth mechanism's control axes into range, then hold the standard mechanism still while the high bandwidth mechanisms do the actual operation in that zone. This “zone-by-zone” approach significantly limits throughput and flexibility, and creates difficulties in defining zones of operation in which the fast mechanism can act alone.
The problem is compounded by the common desire to use automatically generated tool tip paths from standard computer-aided design (CAD) and/or computer-aided manufacturing (CAM) (generally referred to as CAD/CAM) software. Typically, such software has no knowledge of these hybrid mechanisms or the algorithms to deal with them. In these situations, using standard “part description programs” from CAD/CAM software, which specify the net tool-tip paths) is not possible. This has led the designers of machines incorporating high bandwidth mechanisms to attempt to either write their own custom software or to create unique post-processing software specific to each machine. This is required in the prior art for both the case where the slow mechanisms are moved to a location and held still while the fast mechanisms move within their limited zone of motion and for the case where the slow and fast mechanisms are used simultaneously to create net relative motion between the tool and the part. For example, most typical post-processing software takes standard CAD/CAM output files and creates hybrid files that allocate different portions of the motion to the particular fast and slow mechanisms of a single machine. In either case, the custom software must have very precise knowledge of the mechanism configurations and controller algorithms in order to create the net tool tip path defined by the part description program. This problem is only exacerbated by the number and type of controller and mechanism suppliers on the market today and expected in the future.
A further complication is encountered if the machine has a complex geometric relationship between the tool tip coordinates (position and orientation) and the underlying actuator positions within each mechanism. This relationship, known in the art as the kinematic transformation, can be vastly more complex than the simple scaling and offset used on most Cartesian-geometry machines and is employed on more and more machines these days. This adds more complexity to any post-processing algorithm that could be used to allocate different components of motion to the fast and slow mechanisms, because a low bandwidth tool tip motion can require a high bandwidth actuator motion, or vice versa. (Note, however, that the typical scaling and offset required for converting between tool tip coordinates and actuator positions in a simple mechanism can be considered a subset of generalized kinematic transformations.)
Additionally, the movements of the fast and slow mechanisms are commonly commanded by different servo controllers with different update (servo) rates. This can be very difficult to coordinate properly, both in terms of the times for programmed moves (which are usually commanded in terms of speed or “feedrate”, not time) and the “heartbeats” of the controllers' own time bases.
What is needed is a system and process that uses standard part description programs from commercially available CAD/CAM software and processes the data in real time to allocate the proper components of motion between the slow (standard) and fast (high bandwidth) mechanisms without requiring modification of the CAD/CAM software or adding a separate post-processing step.